// 引入router
import router from '@/router/index'
// 引入进度条
import nprogress from 'nprogress'
// 引入样式
import 'nprogress/nprogress.css'
// 引入 store
import store from '@/store'
// 白名单
const width_list = ['/login', '/404']
// 前置导航守卫
// 开启前置守卫是，记得立即加next（）放行，否则页面回空白
router.beforeEach(async(to, from, next) => {
  // 开启进度条
  nprogress.start()
  // 获取token
  const token = store.getters.token
  // console.log(token)
  if (token) {
    if (to.path === '/login') {
      next('/')
      nprogress.done()
    } else {
      // 页面每次跳转都会获取一次用户基本信息
      // 所有请求基本信息的地方必须是每次登录都要跳转经过的地方
      // 注意:取反.没有值才取值
      if (!store.getters.userId) {
        await store.dispatch('user/getUserTokenAction')
      }
      next()
    }
  } else {
    if (width_list.includes(to.path)) {
      next()
    } else {
      next('/login')
      nprogress.done()
    }
  }
})

// 后置导航守卫
router.afterEach(() => {
  // 关闭进度条
  nprogress.done()
})
